Python 列表嵌套字典

您所在的位置:网站首页 python 多层字典 Python 列表嵌套字典

Python 列表嵌套字典

2024-05-02 03:17| 来源: 网络整理| 查看: 265

Python 列表嵌套字典 概述

Python 列表是一种可变数据类型,其中每个元素可以是任何 Python 数据类型,包括其他列表或字典。因此,列表嵌套字典也是可行的。

在此文章中,我们将探讨如何创建和处理列表嵌套字典,以及如何访问和修改列表中的字典元素。

创建列表嵌套字典

创建一个包含几个字典的列表非常容易。我们可以像这样创建一个包含两个字典的列表。

my_list = [{'name': 'Jack', 'age': 28}, {'name': 'Jane', 'age': 32}]

这样就创建了一个名为 my_list 的列表,其中包含两个字典。我们可以在列表中添加更多字典,也可以使用循环来动态地创建列表。

employees = [] employee = {'name': 'Jack', 'age': 28, 'position': 'Developer'} employees.append(employee) employee = {'name': 'Jane', 'age': 32, 'position': 'Manager'} employees.append(employee) employee = {'name': 'Bob', 'age': 45, 'position': 'CEO'} employees.append(employee) print(employees)

这段代码创建了名为 employees 的空列表,然后往其中添加了三个字典。最后一行代码输出完整的列表到控制台。

访问和修改列表中的字典元素

访问和修改列表中的字典元素也很容易。我们可以使用列表和字典的下标操作符来访问和修改元素。

my_list = [{'name': 'Jack', 'age': 28}, {'name': 'Jane', 'age': 32}] # 访问第一个字典的 name 属性 print(my_list[0]['name']) # 修改第二个字典的 age 属性 my_list[1]['age'] = 33 print(my_list[1]['age'])

第一个 print 语句输出了 Jack,也就是第一个字典的 name 属性。第二个语句将第二个字典的 age 属性修改为 33,然后输出修改后的值。

列表和字典的嵌套和循环

字典和列表的组合可以创建非常复杂的数据结构。例如,我们可以创建一个字典,其中每个键对应一个列表。每个列表中包含一个或多个字典,如下所示。

people = { 'engineers': [ {'name': 'John', 'age': 28}, {'name': 'Jane', 'age': 32}, {'name': 'Bob', 'age': 45} ], 'salespeople': [ {'name': 'Jack', 'age': 39}, {'name': 'Jill', 'age': 33} ] } # 循环访问所有人的名字和年龄 for group, people in people.items(): print(f"{group}:") for person in people: print(f"{person['name']}, {person['age']}")

在这段代码中,我们创建了一个名为 people 的字典。这个字典包含两个键,每个键都对应一个列表,其中包含若干个字典。我们可以使用两个嵌套的 for 循环来遍历整个数据结构,这样可以输出每个人的名字和年龄。

另一个例子:学生成绩单

让我们来看一个更复杂的例子:学生成绩单。假设我们需要记录一群学生的成绩信息。每个学生有一个唯一的 ID,以及多个科目的成绩。我们可以用一个字典来表示学生的信息,其中 ID 和成绩分别表示为键和值。

我们可以用一个列表来保存所有的学生信息。

students = [ {'id': '001', 'name': 'Jack', 'scores': {'math': 78, 'english': 85, 'computer': 92}}, {'id': '002', 'name': 'Jane', 'scores': {'math': 62, 'english': 79, 'computer': 88}}, {'id': '003', 'name': 'Bob', 'scores': {'math': 98, 'english': 90, 'computer': 94}}, {'id': '004', 'name': 'Alice', 'scores': {'math': 85, 'english': 92, 'computer': 89}} ] # 计算每个学生的平均分数 for student in students: scores = student['scores'] total_score = sum(scores.values()) avg_score = total_score / len(scores) print(f"{student['name']} (ID: {student['id']}), average score: {avg_score:.2f}")

在这段代码中,我们创建了一个名为 students 的列表,其中包含四个字典。每个字典表示一个学生的信息,包括 ID、姓名和成绩。成绩信息又表示为一个字典,其中包含数学、英语和计算机科学三个键值对。

我们可以使用一个 for 循环来遍历所有学生的信息。对于每个学生,我们可以使用字典下标操作符来访问其 ID、姓名和成绩。然后,我们可以使用字典的 values() 方法获取该学生的所有成绩值,然后使用内置的 sum() 函数计算总分。最后,我们可以通过将总分除以成绩的数量来计算平均成绩,并将其打印到控制台上。

结论

Python 列表嵌套字典是一种方便且常用的数据结构。它允许我们创建复杂的数据结构,以及轻松地表示高维数据。通过本文的介绍,我们学习了如何创建、访问和修改列表嵌套字典,以及如何使用嵌套的列表和字典进行循环。在实际编程中,列表嵌套字典经常用于表示关系型数据,例如数据库表中的记录。熟练掌握这种数据结构,将会使我们的程序更加灵活和高效。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3